package jellis.android.hellotabwidget;


import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class PlannerDbAdapter {
	
	public static final String KEY_DATUM = "date";
    public static final String KEY_AFSPRAAK = "afspraak";
    public static final String KEY_ROWID = "_id";

    private static final String TAG = "PlannerDbAdapter";
    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb;
    
    private static final String DATABASE_CREATE =
        "create table afspraken (_id integer primary key autoincrement, "
        + "date text not null, afspraak text not null);";
    
    private static final String DATABASE_NAME = "data";
    private static final String DATABASE_TABLE = "afspraken";
    private static final int DATABASE_VERSION = 2;
    
    private final Context mCtx;
    
    private static class DatabaseHelper extends SQLiteOpenHelper {

        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {

            db.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS notes");
            onCreate(db);
        }
    }
    
    public PlannerDbAdapter(Context ctx) {
        this.mCtx = ctx;
    }
    
    public PlannerDbAdapter open() throws SQLException {
        mDbHelper = new DatabaseHelper(mCtx);
        mDb = mDbHelper.getWritableDatabase();
        return this;
    }
    
    public void close() {
        mDbHelper.close();
    }
    
    public void createAfspraak(String datum, String description) {
    	
    	String sqlquery = "INSERT INTO " + DATABASE_TABLE + " (date, afspraak) values ('" + datum + "', '" + description + "')";
        mDb.execSQL(sqlquery);
    }
    
    public boolean deleteAfspraak(long rowId) {

        return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
    }
    
    public boolean deleteAllAfspraken()	{
    	return mDb.delete(DATABASE_TABLE, null, null) > 0;
    }

   
    public Cursor fetchAllAfspraken() {

        return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_DATUM,
                KEY_AFSPRAAK}, null, null, null, null, null);
    }
    
    public Cursor fetchAfspraak(long rowId) throws SQLException {

        Cursor mCursor =

            mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID, KEY_DATUM,
                    KEY_AFSPRAAK}, KEY_ROWID + "=" + rowId, null,
                    null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;

    }

}
